home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
IRIX Base Documentation 1998 November
/
IRIX 6.5.2 Base Documentation November 1998.img
/
usr
/
share
/
catman
/
p_man
/
cat3
/
complib
/
fir1d.z
/
fir1d
Wrap
Text File
|
1998-10-30
|
15KB
|
199 lines
____FFFFIIIIRRRR1111DDDD((((3333FFFF)))) ____FFFFIIIIRRRR1111DDDD((((3333FFFF))))
NNNNAAAAMMMMEEEE
SFIR1D, DFIR1D, CFIR1D, ZFIR1D - 1D Convolution in the time domain.
FFFFOOOORRRRTTTTRRRRAAAANNNN SSSSPPPPEEEECCCCIIIIFFFFIIIICCCCAAAATTTTIIIIOOOONNNN
ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee SSSSFFFFIIIIRRRR1111DDDD(((( iiiinnnn____ppppuuuutttt,,,, iiiinnnncccciiiinnnnpppp,,,, iiii0000____iiiinnnnpppp,,,, nnnn____iiiinnnnpppp,,,,
ffffiiiirrrrffffiiiillll,,,, iiiinnnnccccffffiiiirrrr,,,, iiii0000____ffffiiiirrrr,,,, nnnn____ffffiiiirrrr,,,,
oooouuuuttttppppuuuutttt,,,, iiiinnnnccccoooouuuutttt,,,, iiii0000____oooouuuutttt,,,, nnnn____oooouuuutttt,,,,
aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa ))))
iiiinnnntttteeeeggggeeeerrrr iiiinnnncccciiiinnnnpppp,,,, iiii0000____iiiinnnnpppp,,,, nnnn____iiiinnnnpppp,,,,
iiiinnnnccccffffiiiirrrr,,,, iiii0000____ffffiiiirrrr,,,, nnnn____ffffiiiirrrr
iiiinnnnccccoooouuuutttt,,,, iiii0000____oooouuuutttt,,,, nnnn____oooouuuutttt
rrrreeeeaaaallll iiiinnnn____ppppuuuutttt((((****)))),,,, ffffiiiirrrrffffiiiillll((((****)))),,,, oooouuuuttttppppuuuutttt((((****)))),,,, aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa
ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee DDDDFFFFIIIIRRRR1111DDDD(((( iiiinnnn____ppppuuuutttt,,,, iiiinnnncccciiiinnnnpppp,,,, iiii0000____iiiinnnnpppp,,,, nnnn____iiiinnnnpppp,,,,
ffffiiiirrrrffffiiiillll,,,, iiiinnnnccccffffiiiirrrr,,,, iiii0000____ffffiiiirrrr,,,, nnnn____ffffiiiirrrr,,,,
oooouuuuttttppppuuuutttt,,,, iiiinnnnccccoooouuuutttt,,,, iiii0000____oooouuuutttt,,,, nnnn____oooouuuutttt,,,,
aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa ))))
iiiinnnntttteeeeggggeeeerrrr iiiinnnncccciiiinnnnpppp,,,, iiii0000____iiiinnnnpppp,,,, nnnn____iiiinnnnpppp,,,,
iiiinnnnccccffffiiiirrrr,,,, iiii0000____ffffiiiirrrr,,,, nnnn____ffffiiiirrrr
iiiinnnnccccoooouuuutttt,,,, iiii0000____oooouuuutttt,,,, nnnn____oooouuuutttt
ddddoooouuuubbbblllleeee pppprrrreeeecccciiiissssiiiioooonnnn iiiinnnn____ppppuuuutttt((((****)))),,,, ffffiiiirrrrffffiiiillll((((****)))),,,, oooouuuuttttppppuuuutttt((((****)))),,,, aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa
ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee CCCCFFFFIIIIRRRR1111DDDD(((( iiiinnnn____ppppuuuutttt,,,, iiiinnnncccciiiinnnnpppp,,,, iiii0000____iiiinnnnpppp,,,, nnnn____iiiinnnnpppp,,,,
ffffiiiirrrrffffiiiillll,,,, iiiinnnnccccffffiiiirrrr,,,, iiii0000____ffffiiiirrrr,,,, nnnn____ffffiiiirrrr,,,,
oooouuuuttttppppuuuutttt,,,, iiiinnnnccccoooouuuutttt,,,, iiii0000____oooouuuutttt,,,, nnnn____oooouuuutttt,,,,
aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa ))))
iiiinnnntttteeeeggggeeeerrrr iiiinnnncccciiiinnnnpppp,,,, iiii0000____iiiinnnnpppp,,,, nnnn____iiiinnnnpppp,,,,
iiiinnnnccccffffiiiirrrr,,,, iiii0000____ffffiiiirrrr,,,, nnnn____ffffiiiirrrr
iiiinnnnccccoooouuuutttt,,,, iiii0000____oooouuuutttt,,,, nnnn____oooouuuutttt
ccccoooommmmpppplllleeeexxxx iiiinnnn____ppppuuuutttt((((****)))),,,, ffffiiiirrrrffffiiiillll((((****)))),,,, oooouuuuttttppppuuuutttt((((****)))),,,, aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa
ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee ZZZZFFFFIIIIRRRR1111DDDD(((( iiiinnnn____ppppuuuutttt,,,, iiiinnnncccciiiinnnnpppp,,,, iiii0000____iiiinnnnpppp,,,, nnnn____iiiinnnnpppp,,,,
ffffiiiirrrrffffiiiillll,,,, iiiinnnnccccffffiiiirrrr,,,, iiii0000____ffffiiiirrrr,,,, nnnn____ffffiiiirrrr,,,,
oooouuuuttttppppuuuutttt,,,, iiiinnnnccccoooouuuutttt,,,, iiii0000____oooouuuutttt,,,, nnnn____oooouuuutttt,,,,
aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa ))))
iiiinnnntttteeeeggggeeeerrrr iiiinnnncccciiiinnnnpppp,,,, iiii0000____iiiinnnnpppp,,,, nnnn____iiiinnnnpppp,,,,
iiiinnnnccccffffiiiirrrr,,,, iiii0000____ffffiiiirrrr,,,, nnnn____ffffiiiirrrr
iiiinnnnccccoooouuuutttt,,,, iiii0000____oooouuuutttt,,,, nnnn____oooouuuutttt
ddddoooouuuubbbblllleeee ccccoooommmmpppplllleeeexxxx iiiinnnn____ppppuuuutttt((((****)))),,,, ffffiiiirrrrffffiiiillll((((****)))),,,, oooouuuuttttppppuuuutttt((((****)))),,,, aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa
CCCC SSSSPPPPEEEECCCCIIIIFFFFIIIICCCCAAAATTTTIIIIOOOONNNN
####iiiinnnncccclllluuuuddddeeee <<<<ccccoooonnnnvvvv....hhhh>>>>
vvvvooooiiiidddd ssssffffiiiirrrr1111dddd(((( ffffllllooooaaaatttt ****ffff,,,, iiiinnnntttt iiiinnnnccccffff,,,, iiiinnnntttt iiiiffff0000,,,, iiiinnnntttt nnnnffff,,,,
ffffllllooooaaaatttt ****gggg,,,, iiiinnnntttt iiiinnnnccccgggg,,,, iiiinnnntttt iiiigggg0000,,,, iiiinnnntttt nnnngggg,,,,
ffffllllooooaaaatttt ****hhhh,,,, iiiinnnntttt iiiinnnncccchhhh,,,, iiiinnnntttt iiiihhhh0000,,,, iiiinnnntttt nnnnhhhh,,,,
ffffllllooooaaaatttt aaaallllpppphhhhaaaa,,,, ffffllllooooaaaatttt bbbbeeeettttaaaa))))
vvvvooooiiiidddd ddddffffiiiirrrr1111dddd(((( ddddoooouuuubbbblllleeee ****ffff,,,, iiiinnnntttt iiiinnnnccccffff,,,, iiiinnnntttt iiiiffff0000,,,, iiiinnnntttt nnnnffff,,,,
ddddoooouuuubbbblllleeee ****gggg,,,, iiiinnnntttt iiiinnnnccccgggg,,,, iiiinnnntttt iiiigggg0000,,,, iiiinnnntttt nnnngggg,,,,
ddddoooouuuubbbblllleeee ****hhhh,,,, iiiinnnntttt iiiinnnncccchhhh,,,, iiiinnnntttt iiiihhhh0000,,,, iiiinnnntttt nnnnhhhh,,,,
PPPPaaaaggggeeee 1111
____FFFFIIIIRRRR1111DDDD((((3333FFFF)))) ____FFFFIIIIRRRR1111DDDD((((3333FFFF))))
ddddoooouuuubbbblllleeee aaaallllpppphhhhaaaa,,,, ddddoooouuuubbbblllleeee bbbbeeeettttaaaa))))
vvvvooooiiiidddd ccccffffiiiirrrr1111dddd(((( ccccoooommmmpppplllleeeexxxx ****ffff,,,, iiiinnnntttt iiiinnnnccccffff,,,, iiiinnnntttt iiiiffff0000,,,, iiiinnnntttt nnnnffff,,,,
ccccoooommmmpppplllleeeexxxx ****gggg,,,, iiiinnnntttt iiiinnnnccccgggg,,,, iiiinnnntttt iiiigggg0000,,,, iiiinnnntttt nnnngggg,,,,
ccccoooommmmpppplllleeeexxxx ****hhhh,,,, iiiinnnntttt iiiinnnncccchhhh,,,, iiiinnnntttt iiiihhhh0000,,,, iiiinnnntttt nnnnhhhh,,,,
ccccoooommmmpppplllleeeexxxx ****aaaallllpppphhhhaaaa,,,, ccccoooommmmpppplllleeeexxxx ****bbbbeeeettttaaaa))))
vvvvooooiiiidddd zzzzffffiiiirrrr1111dddd(((( zzzzoooommmmpppplllleeeexxxx ****ffff,,,, iiiinnnntttt iiiinnnnccccffff,,,, iiiinnnntttt iiiiffff0000,,,, iiiinnnntttt nnnnffff,,,,
zzzzoooommmmpppplllleeeexxxx ****gggg,,,, iiiinnnntttt iiiinnnnccccgggg,,,, iiiinnnntttt iiiigggg0000,,,, iiiinnnntttt nnnngggg,,,,
zzzzoooommmmpppplllleeeexxxx ****hhhh,,,, iiiinnnntttt iiiinnnncccchhhh,,,, iiiinnnntttt iiiihhhh0000,,,, iiiinnnntttt nnnnhhhh,,,,
zzzzoooommmmpppplllleeeexxxx ****aaaallllpppphhhhaaaa,,,, zzzzoooommmmpppplllleeeexxxx ****bbbbeeeettttaaaa))))
DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
SFIR1D and DFIR1D compute a 1D convolution in the time domain :
O(j) = Sum[ I(i) * F(j-i) ]
UUUUSSSSAAAAGGGGEEEE
These modules compute the result of the convolution in the "output" range
padding with zeroes when needed. In theory, an input sequence of "n_inp"
samples starting at time "i0_inp", filtered by a sequence of "n_fir"
samples starting at time "i0_fir", will result in a new signal of (n_inp
+ n_fir - 1) non zero samples starting at time (i0_inp + i0_fir). We just
compute here the values that fall in that range and zero the rest. This
may be interesting, for example when filtering a sequence of N samples,
with a symmetric filter of 2m+1 samples. If one wants only to compute the
central N resulting samples, the following call can be used:
call _fir1d( f, 0, 1, N, g, -m, 1, 2*m+1, h, 0, 1, N)
PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRRSSSS
iiiinnnn____ppppuuuutttt Pointer to FIRST sample of sequence "in_put"
iiiinnnncccciiiinnnnpppp Increment between two successive values of "in_put"
iiii0000____iiiinnnnpppp Index of the first element of "in_put"
nnnn____iiiinnnnpppp Number of samples of "in_put"
ffffiiiirrrrffffiiiillll Pointer to FIRST sample of sequence "firfil"
PPPPaaaaggggeeee 2222
____FFFFIIIIRRRR1111DDDD((((3333FFFF)))) ____FFFFIIIIRRRR1111DDDD((((3333FFFF))))
iiiinnnnccccffffiiiirrrr Increment between two successive values of "firfil"
iiii0000____ffffiiiirrrr Index of the first element of "firfil"
iiii0000____ffffiiiirrrr Number of samples of "firfil"
oooouuuuttttppppuuuutttt Pointer to FIRST sample of sequence "output"
iiiinnnnccccoooouuuutttt Increment between two successive values of "output"
iiii0000____oooouuuutttt Index of the first element of "output"
nnnn____oooouuuutttt Number of samples of "output"
aaaallllpppphhhhaaaa Scaling factor for the convolution
bbbbeeeettttaaaa Scaling factor for the Output on Entry
IIIIMMMMPPPPOOOORRRRTTTTAAAANNNNTTTT NNNNOOOOTTTTEEEE::::
The array pointers must all point to the first element of the
array "i0_inp", "i0_fir" and "i0_out". If "in_put" for example
is defined as
dimension in_put(-25:45)
Then "dfir1d" must be called with the following parameters
call dfir1d( in_put(-25),1,-25,45, ... )
AAAAUUUUTTTTHHHHOOOORRRRSSSS
Jean-Pierre Panziera, 1/12/93.
PPPPaaaaggggeeee 3333